//
//  cal_determinant.h
//  linear_algebra
//
//  Created by zhangnan on 2025/3/21.
//

#ifndef cal_determinant_h
#define cal_determinant_h

#include <stdio.h>
#include "determinant.h"

/*
 按行展开计算double类型行列式
 */
double cal_double_determinant_by_row(DETERMINANT_DOUBLE_TYPE param);

/*
 按行展开计算int类型行列式
 */
int cal_int_determinant_by_row(DETERMINANT_INT_TYPE param);

/*
 计算按照排列方式直接计算行列式的值(double)
 */
double cal_double_determinant_by_arrange(DETERMINANT_DOUBLE_TYPE params);

/*
 计算按照排列方式直接计算行列式的值(int)
 */
double cal_int_determinant_by_arrange(DETERMINANT_INT_TYPE params);


/**
 计算代数余子式的符号
 params 为排列数组
 cols为每个排列的列数
 index为第几个排列
 */
int cal_cofactor‌‌_symbol(int *params,int cols,int index);

#endif /* cal_determinant_h */
